/*
 * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */
package javax.print.attribute.standard;

import java.util.Locale;

import javax.print.attribute.EnumSyntax;
import javax.print.attribute.Attribute;

/**
 * Class MediaSizeName is a subclass of Media.
 * <p>
 * This attribute can be used instead of specifying MediaName or MediaTray.
 * <p>
 * Class MediaSizeName currently declares a few standard media
 * name values.
 * <p>
 * <B>IPP Compatibility:</B> MediaSizeName is a representation class for
 * values of the IPP "media" attribute which names media sizes.
 * The names of the media sizes correspond to those in the IPP 1.1 RFC
 * <a HREF="http://www.ietf.org/rfc/rfc2911.txt">RFC 2911</a>
 * <p>
 */
public class MediaSizeName extends Media {

    private static final long serialVersionUID = 2778798329756942747L;

    /**
     * A0 size.
     */
    public static final MediaSizeName ISO_A0 = new MediaSizeName(0);
    /**
     * A1 size.
     */
    public static final MediaSizeName ISO_A1 = new MediaSizeName(1);
    /**
     * A2 size.
     */
    public static final MediaSizeName ISO_A2 = new MediaSizeName(2);
    /**
     * A3 size.
     */
    public static final MediaSizeName ISO_A3 = new MediaSizeName(3);
    /**
     * A4 size.
     */
    public static final MediaSizeName ISO_A4 = new MediaSizeName(4);
    /**
     * A5 size.
     */
    public static final MediaSizeName ISO_A5 = new MediaSizeName(5);
    /**
     * A6 size.
     */
    public static final MediaSizeName ISO_A6 = new MediaSizeName(6);
    /**
     * A7 size.
     */
    public static final MediaSizeName ISO_A7 = new MediaSizeName(7);
    /**
     * A8 size.
     */
    public static final MediaSizeName ISO_A8 = new MediaSizeName(8);
    /**
     * A9 size.
     */
    public static final MediaSizeName ISO_A9 = new MediaSizeName(9);
    /**
     * A10 size.
     */
    public static final MediaSizeName ISO_A10 = new MediaSizeName(10);

    /**
     * ISO B0 size.
     */
    public static final MediaSizeName ISO_B0 = new MediaSizeName(11);
    /**
     * ISO B1 size.
     */
    public static final MediaSizeName ISO_B1 = new MediaSizeName(12);
    /**
     * ISO B2 size.
     */
    public static final MediaSizeName ISO_B2 = new MediaSizeName(13);
    /**
     * ISO B3 size.
     */
    public static final MediaSizeName ISO_B3 = new MediaSizeName(14);
    /**
     * ISO B4 size.
     */
    public static final MediaSizeName ISO_B4 = new MediaSizeName(15);
    /**
     * ISO B5 size.
     */
    public static final MediaSizeName ISO_B5 = new MediaSizeName(16);
    /**
     * ISO B6 size.
     */
    public static final MediaSizeName ISO_B6 = new MediaSizeName(17);
    /**
     * ISO B7 size.
     */
    public static final MediaSizeName ISO_B7 = new MediaSizeName(18);
    /**
     * ISO B8 size.
     */
    public static final MediaSizeName ISO_B8 = new MediaSizeName(19);
    /**
     * ISO B9 size.
     */
    public static final MediaSizeName ISO_B9 = new MediaSizeName(20);
    /**
     * ISO B10 size.
     */
    public static final MediaSizeName ISO_B10 = new MediaSizeName(21);

    /**
     * JIS B0 size.
     */
    public static final MediaSizeName JIS_B0 = new MediaSizeName(22);
    /**
     * JIS B1 size.
     */
    public static final MediaSizeName JIS_B1 = new MediaSizeName(23);
    /**
     * JIS B2 size.
     */
    public static final MediaSizeName JIS_B2 = new MediaSizeName(24);
    /**
     * JIS B3 size.
     */
    public static final MediaSizeName JIS_B3 = new MediaSizeName(25);
    /**
     * JIS B4 size.
     */
    public static final MediaSizeName JIS_B4 = new MediaSizeName(26);
    /**
     * JIS B5 size.
     */
    public static final MediaSizeName JIS_B5 = new MediaSizeName(27);
    /**
     * JIS B6 size.
     */
    public static final MediaSizeName JIS_B6 = new MediaSizeName(28);
    /**
     * JIS B7 size.
     */
    public static final MediaSizeName JIS_B7 = new MediaSizeName(29);
    /**
     * JIS B8 size.
     */
    public static final MediaSizeName JIS_B8 = new MediaSizeName(30);
    /**
     * JIS B9 size.
     */
    public static final MediaSizeName JIS_B9 = new MediaSizeName(31);
    /**
     * JIS B10 size.
     */
    public static final MediaSizeName JIS_B10 = new MediaSizeName(32);

    /**
     * ISO C0 size.
     */
    public static final MediaSizeName ISO_C0 = new MediaSizeName(33);
    /**
     * ISO C1 size.
     */
    public static final MediaSizeName ISO_C1 = new MediaSizeName(34);
    /**
     * ISO C2 size.
     */
    public static final MediaSizeName ISO_C2 = new MediaSizeName(35);
    /**
     * ISO C3 size.
     */
    public static final MediaSizeName ISO_C3 = new MediaSizeName(36);
    /**
     * ISO C4 size.
     */
    public static final MediaSizeName ISO_C4 = new MediaSizeName(37);
    /**
     * ISO C5 size.
     */
    public static final MediaSizeName ISO_C5 = new MediaSizeName(38);
    /**
     * letter size.
     */
    public static final MediaSizeName ISO_C6 = new MediaSizeName(39);
    /**
     * letter size.
     */
    public static final MediaSizeName NA_LETTER = new MediaSizeName(40);

    /**
     * legal size .
     */
    public static final MediaSizeName NA_LEGAL = new MediaSizeName(41);

    /**
     * executive size .
     */
    public static final MediaSizeName EXECUTIVE = new MediaSizeName(42);

    /**
     * ledger size .
     */
    public static final MediaSizeName LEDGER = new MediaSizeName(43);

    /**
     * tabloid size .
     */
    public static final MediaSizeName TABLOID = new MediaSizeName(44);

    /**
     * invoice size .
     */
    public static final MediaSizeName INVOICE = new MediaSizeName(45);

    /**
     * folio size .
     */
    public static final MediaSizeName FOLIO = new MediaSizeName(46);

    /**
     * quarto size .
     */
    public static final MediaSizeName QUARTO = new MediaSizeName(47);

    /**
     * Japanese Postcard size.
     */
    public static final MediaSizeName
            JAPANESE_POSTCARD = new MediaSizeName(48);
    /**
     * Japanese Double Postcard size.
     */
    public static final MediaSizeName
            JAPANESE_DOUBLE_POSTCARD = new MediaSizeName(49);

    /**
     * A size .
     */
    public static final MediaSizeName A = new MediaSizeName(50);

    /**
     * B size .
     */
    public static final MediaSizeName B = new MediaSizeName(51);

    /**
     * C size .
     */
    public static final MediaSizeName C = new MediaSizeName(52);

    /**
     * D size .
     */
    public static final MediaSizeName D = new MediaSizeName(53);

    /**
     * E size .
     */
    public static final MediaSizeName E = new MediaSizeName(54);

    /**
     * ISO designated long size .
     */
    public static final MediaSizeName
            ISO_DESIGNATED_LONG = new MediaSizeName(55);

    /**
     * Italy envelope size .
     */
    public static final MediaSizeName
            ITALY_ENVELOPE = new MediaSizeName(56);  // DESIGNATED_LONG?

    /**
     * monarch envelope size .
     */
    public static final MediaSizeName
            MONARCH_ENVELOPE = new MediaSizeName(57);
    /**
     * personal envelope size .
     */
    public static final MediaSizeName
            PERSONAL_ENVELOPE = new MediaSizeName(58);
    /**
     * number 9 envelope size .
     */
    public static final MediaSizeName
            NA_NUMBER_9_ENVELOPE = new MediaSizeName(59);
    /**
     * number 10 envelope size .
     */
    public static final MediaSizeName
            NA_NUMBER_10_ENVELOPE = new MediaSizeName(60);
    /**
     * number 11 envelope size .
     */
    public static final MediaSizeName
            NA_NUMBER_11_ENVELOPE = new MediaSizeName(61);
    /**
     * number 12 envelope size .
     */
    public static final MediaSizeName
            NA_NUMBER_12_ENVELOPE = new MediaSizeName(62);
    /**
     * number 14 envelope size .
     */
    public static final MediaSizeName
            NA_NUMBER_14_ENVELOPE = new MediaSizeName(63);
    /**
     * 6x9 North American envelope size.
     */
    public static final MediaSizeName
            NA_6X9_ENVELOPE = new MediaSizeName(64);
    /**
     * 7x9 North American envelope size.
     */
    public static final MediaSizeName
            NA_7X9_ENVELOPE = new MediaSizeName(65);
    /**
     * 9x11 North American envelope size.
     */
    public static final MediaSizeName
            NA_9X11_ENVELOPE = new MediaSizeName(66);
    /**
     * 9x12 North American envelope size.
     */
    public static final MediaSizeName
            NA_9X12_ENVELOPE = new MediaSizeName(67);

    /**
     * 10x13 North American envelope size .
     */
    public static final MediaSizeName
            NA_10X13_ENVELOPE = new MediaSizeName(68);
    /**
     * 10x14North American  envelope size .
     */
    public static final MediaSizeName
            NA_10X14_ENVELOPE = new MediaSizeName(69);
    /**
     * 10x15 North American envelope size.
     */
    public static final MediaSizeName
            NA_10X15_ENVELOPE = new MediaSizeName(70);

    /**
     * 5x7 North American paper.
     */
    public static final MediaSizeName
            NA_5X7 = new MediaSizeName(71);

    /**
     * 8x10 North American paper.
     */
    public static final MediaSizeName
            NA_8X10 = new MediaSizeName(72);

    /**
     * Construct a new media size enumeration value with the given integer
     * value.
     *
     * @param value Integer value.
     */
    protected MediaSizeName(int value) {
        super(value);
    }

    private static final String[] myStringTable = {
            "iso-a0",
            "iso-a1",
            "iso-a2",
            "iso-a3",
            "iso-a4",
            "iso-a5",
            "iso-a6",
            "iso-a7",
            "iso-a8",
            "iso-a9",
            "iso-a10",
            "iso-b0",
            "iso-b1",
            "iso-b2",
            "iso-b3",
            "iso-b4",
            "iso-b5",
            "iso-b6",
            "iso-b7",
            "iso-b8",
            "iso-b9",
            "iso-b10",
            "jis-b0",
            "jis-b1",
            "jis-b2",
            "jis-b3",
            "jis-b4",
            "jis-b5",
            "jis-b6",
            "jis-b7",
            "jis-b8",
            "jis-b9",
            "jis-b10",
            "iso-c0",
            "iso-c1",
            "iso-c2",
            "iso-c3",
            "iso-c4",
            "iso-c5",
            "iso-c6",
            "na-letter",
            "na-legal",
            "executive",
            "ledger",
            "tabloid",
            "invoice",
            "folio",
            "quarto",
            "japanese-postcard",
            "oufuko-postcard",
            "a",
            "b",
            "c",
            "d",
            "e",
            "iso-designated-long",
            "italian-envelope",
            "monarch-envelope",
            "personal-envelope",
            "na-number-9-envelope",
            "na-number-10-envelope",
            "na-number-11-envelope",
            "na-number-12-envelope",
            "na-number-14-envelope",
            "na-6x9-envelope",
            "na-7x9-envelope",
            "na-9x11-envelope",
            "na-9x12-envelope",
            "na-10x13-envelope",
            "na-10x14-envelope",
            "na-10x15-envelope",
            "na-5x7",
            "na-8x10",
    };

    private static final MediaSizeName[] myEnumValueTable = {
            ISO_A0,
            ISO_A1,
            ISO_A2,
            ISO_A3,
            ISO_A4,
            ISO_A5,
            ISO_A6,
            ISO_A7,
            ISO_A8,
            ISO_A9,
            ISO_A10,
            ISO_B0,
            ISO_B1,
            ISO_B2,
            ISO_B3,
            ISO_B4,
            ISO_B5,
            ISO_B6,
            ISO_B7,
            ISO_B8,
            ISO_B9,
            ISO_B10,
            JIS_B0,
            JIS_B1,
            JIS_B2,
            JIS_B3,
            JIS_B4,
            JIS_B5,
            JIS_B6,
            JIS_B7,
            JIS_B8,
            JIS_B9,
            JIS_B10,
            ISO_C0,
            ISO_C1,
            ISO_C2,
            ISO_C3,
            ISO_C4,
            ISO_C5,
            ISO_C6,
            NA_LETTER,
            NA_LEGAL,
            EXECUTIVE,
            LEDGER,
            TABLOID,
            INVOICE,
            FOLIO,
            QUARTO,
            JAPANESE_POSTCARD,
            JAPANESE_DOUBLE_POSTCARD,
            A,
            B,
            C,
            D,
            E,
            ISO_DESIGNATED_LONG,
            ITALY_ENVELOPE,
            MONARCH_ENVELOPE,
            PERSONAL_ENVELOPE,
            NA_NUMBER_9_ENVELOPE,
            NA_NUMBER_10_ENVELOPE,
            NA_NUMBER_11_ENVELOPE,
            NA_NUMBER_12_ENVELOPE,
            NA_NUMBER_14_ENVELOPE,
            NA_6X9_ENVELOPE,
            NA_7X9_ENVELOPE,
            NA_9X11_ENVELOPE,
            NA_9X12_ENVELOPE,
            NA_10X13_ENVELOPE,
            NA_10X14_ENVELOPE,
            NA_10X15_ENVELOPE,
            NA_5X7,
            NA_8X10,
    };


    /**
     * Returns the string table for class MediaSizeName.
     */
    protected String[] getStringTable() {
        return (String[]) myStringTable.clone();
    }

    /**
     * Returns the enumeration value table for class MediaSizeName.
     */
    protected EnumSyntax[] getEnumValueTable() {
        return (EnumSyntax[]) myEnumValueTable.clone();
    }


}
